#include "F2837xS_device.h"
#include "F28x_Project.h"


void Configure_LED_GPIO(){
	//GPIO_SetupPinMux(71, GPIO_MUX_CPU1, 0);  	// SEVEN SEGMENT, UPPER -
	//GPIO_SetupPinMux(74, GPIO_MUX_CPU1, 0); 	// SEVEN SEGMENT, RIGHT UPPER |
	//GPIO_SetupPinMux(77, GPIO_MUX_CPU1, 0);	// SEVEN SEGMENT, RIGHT LOWER |
	//GPIO_SetupPinMux(80, GPIO_MUX_CPU1, 0);	// SEVEN SEGMENT, LOWER -
	GPIO_SetupPinMux(81, GPIO_MUX_CPU1, 0);  	// SEVEN SEGMENT, LEFT LOWER |
	GPIO_SetupPinMux(83, GPIO_MUX_CPU1, 0);	// SEVEN SEGMENT, LEFT UPPER |
	GPIO_SetupPinMux(86, GPIO_MUX_CPU1, 0);	// SEVEN SEGMENT, MID -
	GPIO_SetupPinMux(87, GPIO_MUX_CPU1, 0);	// SEVEN SEGMENT, DOT

	GPIO_SetupPinMux(31, GPIO_MUX_CPU1, 0);  	// LED1
	GPIO_SetupPinMux(34, GPIO_MUX_CPU1, 0);  	// LED2

	//GPIO_SetupPinOptions(71, GPIO_OUTPUT, GPIO_PUSHPULL);  	// SEVEN SEGMENT, UPPER -
	//GPIO_SetupPinOptions(74, GPIO_OUTPUT, GPIO_PUSHPULL); 	// SEVEN SEGMENT, RIGHT UPPER |
	//GPIO_SetupPinOptions(77, GPIO_OUTPUT, GPIO_PUSHPULL);	// SEVEN SEGMENT, RIGHT LOWER |
	//GPIO_SetupPinOptions(80, GPIO_OUTPUT, GPIO_PUSHPULL);	// SEVEN SEGMENT, LOWER -
	GPIO_SetupPinOptions(81, GPIO_OUTPUT, GPIO_PUSHPULL);  	// SEVEN SEGMENT, LEFT LOWER |
	GPIO_SetupPinOptions(83, GPIO_OUTPUT, GPIO_PUSHPULL);	// SEVEN SEGMENT, LEFT UPPER |
	GPIO_SetupPinOptions(86, GPIO_OUTPUT, GPIO_PUSHPULL);	// SEVEN SEGMENT, MID -
	GPIO_SetupPinOptions(87, GPIO_OUTPUT, GPIO_PUSHPULL);	// SEVEN SEGMENT, DOT

	GPIO_SetupPinOptions(31, GPIO_OUTPUT, GPIO_PUSHPULL);  	// LED1
	GPIO_SetupPinOptions(34, GPIO_OUTPUT, GPIO_PUSHPULL);  	// LED2

}

void Configure_PWM_EN_GPIO(){
	//GPIO_SetupPinMux(PWM_EN0, GPIO_MUX_CPU1, 0);	// PWM ENABLE SIGNAL
	GPIO_SetupPinMux(PWM_EN1, GPIO_MUX_CPU1, 0);	// PWM ENABLE SIGNAL
	//GPIO_SetupPinOptions(PWM_EN0, GPIO_OUTPUT, GPIO_PUSHPULL);	// PWM ENABLE SIGNAL
	EALLOW;
	GpioCtrlRegs.GPCMUX2.bit.GPIO88 = 0;
	GpioCtrlRegs.GPCGMUX2.bit.GPIO88 = 0;
	GpioCtrlRegs.GPCPUD.bit.GPIO88 = 1;
	GpioCtrlRegs.GPCDIR.bit.GPIO88 = 1;
	EDIS;


	GPIO_WritePin(PWM_EN0, 0);
	GPIO_SetupPinOptions(PWM_EN1, GPIO_OUTPUT, GPIO_PUSHPULL);	// PWM ENABLE SIGNAL
	GPIO_WritePin(PWM_EN1, 0);
}

void Configure_HW_PROT_GPIO(){
	GPIO_SetupPinMux(47, GPIO_MUX_CPU1, 0);	// HW_PROT0
	GPIO_SetupPinMux(50, GPIO_MUX_CPU1, 0);	// HW_PROT1
	GPIO_SetupPinMux(53, GPIO_MUX_CPU1, 0);	// HW_PROT2
	GPIO_SetupPinMux(56, GPIO_MUX_CPU1, 0);	// HW_PROT3
	GPIO_SetupPinMux(59, GPIO_MUX_CPU1, 0);	// HW_PROT4

	GPIO_SetupPinOptions(47, GPIO_INPUT, GPIO_PUSHPULL);	// HW_PROT0
	GPIO_SetupPinOptions(50, GPIO_INPUT, GPIO_PUSHPULL);	// HW_PROT1
	GPIO_SetupPinOptions(53, GPIO_INPUT, GPIO_PUSHPULL);	// HW_PROT2
	GPIO_SetupPinOptions(56, GPIO_INPUT, GPIO_PUSHPULL);	// HW_PROT3
	GPIO_SetupPinOptions(59, GPIO_INPUT, GPIO_PUSHPULL);	// HW_PROT4
}

